In a computer network, Network Address Translation (NAT) is a technology for rewriting a source Internet Protocol (IP) address or a destination IP address when a network packet passes through a router or a firewall. A NAT router between a local network and the Internet is capable of being connected to the Internet by using one or more public IP addresses provided by an Internet Service Provider (ISP) and performing NAT translation on the private IP address of a client in the local network for the subsequent connection to, the Internet.
However, to perform NAT, a NAT router needs to examine one by one whether all the received network packets meet the data in a NAT mapping table. If the information of a network packet cannot be found in the table, it needs to be determined by a large amount of preset rules whether the network packet needs NAT including its processes of learning and translation. Also, all network packets need to be transferred to a core unit through a driving unit of a NAT server and then a core unit performs determination, learning or translation.
Once a network packet is transferred to a core unit, whether necessary or not, examination and processing in the layers such as a Medium Access Control (MAC) layer, an IP layer or a Transmission Control Protocol (TCP) layer are performed. Therefore, a large amount of time is wasted in computation and processing for a simple NAT translation with data already stored in a table, resulting in a packet delay. Moreover, for a local network that requires NAT translation, basically all packets need NAT translation, which accordingly deteriorates the packet delay problem because of a large amount of translation demands.